﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Smartee.RichText
{
    public interface IVisitor
    {
        void StartVisit(Document document);
        void StartVisit(Paragraph paragraph);
        void StartVisit(Table table);
        void StartVisit(Row row);
        void StartVisit(Cell cell);
        void StartVisit(Footnote footnote);

        void EndVisit(Document document);
        void EndVisit(Paragraph paragraph);
        void EndVisit(Table table);
        void EndVisit(Row row);
        void EndVisit(Cell cell);
        void EndVisit(Footnote footnote);

        void StartHeader(Document document);
        void StartFooter(Document document);
        void EndHeader(Document document);
        void EndFooter(Document document);

        void Visit(PageNumber pageNumber);
        void Visit(PageBreak pageBreak);
        void Visit(NewLine newline);
        void Visit(Text text);
        void Visit(ChangePageNumber changePageNumber);

        void Visit(BoldFaceModifier bold);
        void Visit(UnderlineModifier underline);
        void Visit(StrikeModifier strike);
        void Visit(FontModifier font);
        void Visit(ForegoundColorModifier color);
        void Visit(BackgoundColorModifier color);
        void Visit(TextDirectionModifier textDirectionModifier);
    }
}
